package Json2RDF.Json2Java.OntologyClasses;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.util.HashMap;

/**
 * {@code CylindricalSurface}类表示圆柱面，继承自{@code Face}类，提供圆柱面半径、
 * 高度、轴线端点、轴线方向、凹凸性信息
 */
public class CylindricalSurface extends Face {
  @JsonProperty("Radius")
  private double radius;
  @JsonProperty("Height")
  private double height;
  @JsonProperty("AxisEnd1")
  private double[] axisEnd1;
  @JsonProperty("AxisEnd2")
  private double[] axisEnd2;
  @JsonProperty("AxisVector")
  private double[] axisVector;
  @JsonProperty("IsConvexity")
  private boolean isConvexity;

  /**
   * 初始化一个{@code CylindricalSurface}类的实例
   */
  public CylindricalSurface() {
    this.id = "";
    this.partId = "";
    this.radius = 0.0;
    this.height = 0.0;
    this.axisEnd1 = new double[2];
    this.axisEnd2 = new double[2];
    this.axisVector = new double[2];
    this.isConvexity = false;
    this.relations = new HashMap<>();
  }

  public double getRadius() {
    return radius;
  }

  public void setRadius(double radius) {
    this.radius = radius;
  }

  public double getHeight() {
    return height;
  }

  public void setHeight(double height) {
    this.height = height;
  }

  public double[] getAxisEnd1() {
    return axisEnd1;
  }

  public void setAxisEnd1(double[] axisEnd1) {
    this.axisEnd1 = axisEnd1;
  }

  public double[] getAxisEnd2() {
    return axisEnd2;
  }

  public void setAxisEnd2(double[] axisEnd2) {
    this.axisEnd2 = axisEnd2;
  }

  public double[] getAxisVector() {
    return axisVector;
  }

  public void setAxisVector(double[] axisVector) {
    this.axisVector = axisVector;
  }

  public boolean isIsConvexity() {
    return isConvexity;
  }

  public void setIsConvexity(boolean isConvexity) {
    this.isConvexity = isConvexity;
  }
}
